package com.cjj.datatransfer;

/**
 * =================================
 * <p>
 * Created by cjj on 18-3-23.
 * <p>
 * 描述: 元组工厂
 */

public class Tuple {

    public static <A, B> TwoTuple tuple(A a, B b) {
        return new TwoTuple(a, b);
    }

    public static <A, B, C> ThreeTuple tuple(A a, B b, C c) {
        return new ThreeTuple(a, b, c);
    }

    public static <A, B, C, D> FourTuple tuple(A a, B b, C c, D d) {
        return new FourTuple(a, b, c, d);
    }

    public static <A, B, C, D, E> FiveTuple tuple(A a, B b, C c, D d, E e) {
        return new FiveTuple(a, b, c, d, e);
    }

    public static <A, B, C, D, E, F> SixTuple tuple(A a, B b, C c, D d, E e, F f) {
        return new SixTuple(a, b, c, d, e, f);
    }


    public static <A, B, C, D, E, F, G, H> EightTuple tuple(A a, B b, C c, D d, E e, F f, G g, H h) {
        return new EightTuple(a, b, c, d, e, f, g, h);
    }

    public static <A, B, C, D, E, F, G, H, I> NineTuple tuple(A a, B b, C c, D d, E e, F f, G g, H h, I i) {
        return new NineTuple(a, b, c, d, e, f, g, h, i);
    }

    public static <A, B, C, D, E, F, G, H, I, J> TenTuple tuple(A a, B b, C c, D d, E e, F f, G g, H h, I i, J j) {
        return new TenTuple(a, b, c, d, e, f, g, h, i, j);
    }

    public static <A, B, C, D, E, F, G, H, I, J, K> ElevenTuple tuple(A a, B b, C c, D d, E e, F f, G g, H h, I i, J j, K k) {
        return new ElevenTuple(a, b, c, d, e, f, g, h, i, j, k);
    }

    public static <A, B, C, D, E, F, G, H, I, J, K, L> TwleveTuple tuple(A a, B b, C c, D d, E e, F f, G g, H h, I i, J j, K k, L l) {
        return new TwleveTuple(a, b, c, d, e, f, g, h, i, j, k, l);
    }
}
